package qxfw.wx.CimissAPI;
import java.util.HashMap;

import cma.cimiss.RetArray2D;
import cma.cimiss.client.DataQueryClient;
import qxfw.wx.Util.FormatUtil;
/*
 * 客户端调取，站点要素统计，序列化为json格式字符串
 */
public class StaElemStatAPI_CLIB_callAPI_to_serializedStr_JSON {
	/*
	 * main方法 如：按时间段统计中国地面逐小时降水量 statSurfPre
	 */
	public static String getInfo() {


		/* 1. 定义client对象 */
		DataQueryClient client = new DataQueryClient() ;

		/* 2. 调用方法的参数定义，并赋值 */
		/* 2.1 用户名&密码 */
		String userId = "BEHT_PXZX_test";
		String pwd = "test";
		/* 2.2 接口ID */
		String interfaceId = "getSurfEleByTime ";
		/* 2.3 接口参数，多个参数间无顺序 */
		HashMap<String, String> params = new HashMap<String, String>();
		// 必选参数
		params.put("dataCode", "SURF_CHN_MUL_HOR") ; //资料代码
        params.put("elements", "Station_Id_d,Station_Name,Province,City,TEM,PRE_12h") ;//检索要素：站号、站名、小时降水、气压、相对湿度、能见度、2分钟平均风速、2分钟风向
        params.put("times", "20190123000000") ; //检索时间
        params.put("staLevels", "013");
        //可选参数
        params.put("orderby", "Station_ID_C:ASC") ; //排序：按照站号从小到大
        params.put("limitCnt", "10") ; //返回最多记录数：10
		 
		/* 2.4 返回文件的格式 */
	    String dataFormat = "json" ;
	    /* 2.5 返回字符串 */
	    
        StringBuffer retStr = new StringBuffer() ;
//        RetArray2D retArray2D = new RetArray2D() ;
        
	    /* 3. 调用接口 */
	    try {
	      //初始化接口服务连接资源
	      client.initResources() ;
	      //调用接口
	      int rst = client.callAPI_to_serializedStr(userId, pwd, interfaceId, params, dataFormat, retStr);
	      //输出结果
	      if(rst == 0) { //正常返回
	    	  FormatUtil formatUtil = new FormatUtil() ;
	          formatUtil.outputRstJson( retStr.toString() ) ;
	      } else { //异常返回
	    	  System.out.println( "[error] StaElemStatAPI_CLIB_callAPI_to_array2D." ) ;                
              System.out.printf( "\treturn code: %d. \n", rst ) ;
	      }
	    } catch (Exception e) {
	      //异常输出
	      e.printStackTrace() ;
	    } finally {
	      //释放接口服务连接资源
	      client.destroyResources() ;
	    }
		return retStr.toString();
	  
	}
}
